Computing systems have achieved widespread acceptance as a means for creating and manipulating a wide variety of types of documents. For instance, users routinely create word processing documents, drawing documents, spreadsheet documents, database documents, and the like. Even among word processing documents there may be various types. For instance, some word processing applications may be designed to provide rich formatting and page layout functionality, such as a desktop publishing application. Other word processing applications may be designed as simple text editors. Still other word processors may be designed as tools for organizing textual data or notes into useful information.
One of the problems facing many software designers is the consumer's desire to share information between applications. In particular, the amount of metadata that may apply to portions of a document is enormous. For instance, in a modem word processing application, a portion of data may include general formatting that defines aspects of the appearance of the data. Examples of such general formatting may include paragraph indentation, font typeface, font size, and the like. In addition, many of those aspects of the appearance of data in a document may be directly modified on only a particular portion of the document. For example, a few words in a paragraph may be bolded or underlined for emphasis, or a particular paragraph may be indented differently than other paragraphs in a selection. To further complicate matters, text within a document may also have outline structure. For the purpose of this document, outline structure means that two or more elements of a document are assigned levels that distinguish one element from another element. Parent/child relationships may also be created between elements of different levels.
Until now, software designers have not provided the user with the ability to identify exactly what aspects of data are persisted when data is copied from one document to another document. Existing applications provide users with few options regarding pasted data. For instance, a user may choose to paste data as text only, which eliminates all vestiges of formatting or outline structure. Alternatively, some existing applications provide a user with a choice of the particular general format to use when pasting data. For example, some applications allow data to be pasted as HyperText Markup Language (HTML) or Rich Text Format (RTF). However, pasting data using a generalized intermediate format forces the user to accept whatever aspects of the data that exist in the source document and are supported by the intermediate format. In addition, a mechanism for deriving outline structure from non-outline formatting has, until now, eluded those skilled in the art.